CREATE PROCEDURE [dbo].[Moneda_Vacia]
AS
BEGIN
	--Dolar Americano
	--Variable Tabla con los valores 
	DECLARE @USD TABLE 
	(
		[fecha_medida_moneda] DATETIME
		,[valor_en_pesos_moneda] FLOAT
		
	);
	INSERT @USD
	SELECT [fecha_medida_moneda]
		  ,[valor_en_pesos_moneda] 
	FROM [datawarehouse_Socoda].[dbo].[dimension moneda] WHERE [nombre_moneda] = 'Dolar Americano' ORDER BY [fecha_medida_moneda] ASC
	--Variables del sp
	DECLARE @NUM INT = 0
	DECLARE @COUNTER INT = 1
	DECLARE @COUNTER2 INT = 1
	DECLARE @FECHAANTERIOR DATETIME
	DECLARE @FECHAACTUAL DATETIME
	DECLARE @FECHARESULTADO DATETIME
	DECLARE @SOURCEKEY VARCHAR(15)
	DECLARE @VALORANTERIOR FLOAT
	DECLARE @VALORACTUAL FLOAT
	DECLARE @DATEDIFF AS INT = 0
	--numero registros en tabla usd
	SELECT @NUM = COUNT([valor_en_pesos_moneda]) FROM @USD
	--recorrido por los registros
	WHILE @COUNTER <= @NUM
	BEGIN
		--si es el primero
		IF @COUNTER = 1
		BEGIN
			SELECT TOP (@COUNTER) @FECHAANTERIOR = [fecha_medida_moneda],@VALORANTERIOR = [valor_en_pesos_moneda] FROM @USD
		END
		ELSE
		BEGIN
			--si no verificar que no haya espacios en los dias, si no crear nuevos registros basados en el ultimo valor
			SELECT TOP (@COUNTER) @FECHAACTUAL = [fecha_medida_moneda],@VALORACTUAL=[valor_en_pesos_moneda] FROM @USD
			SET @DATEDIFF = DATEDIFF(day,@FECHAANTERIOR,@FECHAACTUAL)
			IF @DATEDIFF > 1
			BEGIN
				WHILE @COUNTER2 < @DATEDIFF
				BEGIN
					SET @FECHARESULTADO = DATEADD(day,@COUNTER2,@FECHAANTERIOR)
					SET @SOURCEKEY = 'usd_'+CONVERT(VARCHAR(8), @FECHARESULTADO, 112)
					INSERT INTO datawarehouse_Socoda.dbo.[dimension moneda] VALUES ('Dolar Americano',@FECHARESULTADO,@VALORANTERIOR,@SOURCEKEY)
					SET @COUNTER2 = @COUNTER2 + 1
				END
				SET @COUNTER2 = 1
			END
			SET @FECHAANTERIOR = @FECHAACTUAL
			SET @VALORANTERIOR = @VALORACTUAL
		END
		SET @COUNTER = @COUNTER + 1
	END
	--RESETEO DE VARIABLES
	SET @NUM = 0
	SET @COUNTER = 1
	SET @COUNTER2 = 1
	--Euro
	DECLARE @EUR TABLE 
	(
		[fecha_medida_moneda] DATETIME
		,[valor_en_pesos_moneda] FLOAT
		
	);
	INSERT @EUR
	SELECT [fecha_medida_moneda]
		  ,[valor_en_pesos_moneda] 
	FROM [datawarehouse_Socoda].[dbo].[dimension moneda] WHERE [nombre_moneda] = 'Euro' ORDER BY [fecha_medida_moneda] ASC
	--numero registros en tabla usd
	SELECT @NUM = COUNT([valor_en_pesos_moneda]) FROM @EUR
	--recorrido por los registros
	WHILE @COUNTER <= @NUM
	BEGIN
		--si es el primero
		IF @COUNTER = 1
		BEGIN
			SELECT TOP (@COUNTER) @FECHAANTERIOR = [fecha_medida_moneda],@VALORANTERIOR = [valor_en_pesos_moneda] FROM @EUR
		END
		ELSE
		BEGIN
			--si no verificar que no haya espacios en los dias, si no crear nuevos registros basados en el ultimo valor
			SELECT TOP (@COUNTER) @FECHAACTUAL = [fecha_medida_moneda],@VALORACTUAL=[valor_en_pesos_moneda] FROM @EUR
			SET @DATEDIFF = DATEDIFF(day,@FECHAANTERIOR,@FECHAACTUAL)
			IF @DATEDIFF > 1
			BEGIN
				WHILE @COUNTER2 < @DATEDIFF
				BEGIN
					SET @FECHARESULTADO = DATEADD(day,@COUNTER2,@FECHAANTERIOR)
					SET @SOURCEKEY = 'eur_'+CONVERT(VARCHAR(8), @FECHARESULTADO, 112)
					INSERT INTO datawarehouse_Socoda.dbo.[dimension moneda] VALUES ('Euro',@FECHARESULTADO,@VALORANTERIOR,@SOURCEKEY)
					SET @COUNTER2 = @COUNTER2 + 1
				END
				SET @COUNTER2 = 1
			END
			SET @FECHAANTERIOR = @FECHAACTUAL
			SET @VALORANTERIOR = @VALORACTUAL
		END
		SET @COUNTER = @COUNTER + 1
	END
END

